package com.heima.day08;

import java.util.Scanner;

/* 8、【编号：809】 我国的居民身份证号码，
 * 由由十七位数字本体码和一位数字校验码组
 * 成。请定义方法判断用户输入的身份证号码
 * 是否合法，并在主方法中调用方法测试结果
 * 。规则为：号码为18位，不能以数字0开头
 * ，前17位只可以是数字，最后一位可以
 * 是数字或者大写字母X。*/
public class Demo8 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("输入一个身份证号码的字符串:");
        String str = sc.nextLine();
        boolean bl = Demo8.hefa(str);
        if (bl) {
            System.out.println("您输入的身份证号码是合法的!");
        } else {
            System.out.println("您输入的身份证号码不是合法的!");
        }
    }

    public static boolean hefa(String str) {
        char[] ch = str.toCharArray();
        if (ch.length != 18 || (ch[0] < '1' && ch[0] > '9')) {
            return false;
        }
        for (int i = 1; i < ch.length; i++) {
            if (i == ch.length - 1) {
                if ((ch[i] >= '0' && ch[i] <= '9')) {
                    return true;
                } else if (ch[i] == 'X') {
                    return true;
                }
            } else {
                if (ch[i] < '0' || ch[i] > '9') {
                    return false;
                }
            }
        }
        return true;
    }
}
